package org.tao.lightningmq.client.producer;

import org.tao.lightningmq.common.dto.MessageDTO;

/**
 * @Author lht
 * @date 2025/1/19 - 17:01
 * @description: mq生产者sdk
 */
public interface Producer {

    /**
     * 建立连接
     */
    void start();

    /**
     * 同步发送
     *
     * @param messageDTO
     * @return
     */
    SendResult send(MessageDTO messageDTO);

    /**
     * 异步发送
     *
     * @param messageDTO
     * @return
     */
    void sendAsync(MessageDTO messageDTO);

    /**
     * 发送事务消息
     *
     * @param messageDTO
     * @return
     */
    SendResult sendTxMessage(MessageDTO messageDTO);

}
